tab.path <- "results/table/"
tab.name <- "app_tab_g02.tex"

yvars <- c("par.onl.sh")
Re$highclass <- Re$hc1 
Re$high_single1 <- Re$f_cel_4 > quantile(Re$f_cel_4, c(0.5), na.rm = T) 
Re$fhighc <- Re$highclass > quantile(Re$highclass, c(0.5), na.rm = T) 

Re$high_single <- Re$high_single1 &
      (Re$highclass > quantile(Re$highclass, c(0.5), na.rm = T) ) 

controls_nosings <- setdiff(controls, c("single_")) #Take out controls capturing single hh
fcontrols_nosings <- paste0("dpost:",controls_nosings)

vars <- c(  "factor(dpost)*factor(treat_10)", "factor(dpost)*factor(treat_10)*factor(high_single)", "factor(dpost)" ,"factor(treat_10)", "factor(high_single)")
outvars <- c( "factor.dpost.TRUE.factor.treat_10.TRUE", "^factor.dpost.TRUE$" ,"^factor.treat_10.TRUE$" , "^factor.high_single.TRUE$" )
labvars <- c("DPost X March", "DPost X March X High Female Celibacy and High Class","DPost", "March", "High Female Celibacy")

m1  <- felm(as.formula(RegFor( y = yvars[1] , x = c(vars) ,
      FE = "county" , IV="0", clust = "klust" )),
           data= Re)
m2 <- felm(as.formula(RegFor( y = yvars[1] , x = c(vars, fcontrols_nosings) ,
      FE = "county" , IV="0", clust = "klust" )),
           data= Re)
m3 <- felm(as.formula(RegFor( y = yvars[1] , x = c(vars, fcontrols_nosings) ,
      FE = "county" , IV="0", clust = "klust" )),
           data= subset(Re, year %in% c(1912, 1914)))
m4 <- felm(as.formula(RegFor( y = yvars[1] , x = c(vars, fcontrols_nosings) ,
      FE = "county" , IV="0", clust = "klust" )),
           data= subset(Re, year %in% c(1911,1912, 1914)))
m5 <- felm(as.formula(RegFor( y = yvars[1] , x = c(vars, fcontrols_nosings) ,
      FE = "county" , IV="0", clust = "klust" )),
       data= subset(Re, year %in% c(1911,1912, 1913, 1914) & 
       (pop < 15000 & (dist.roads <= 2 | treat_10 == 1))))

getwd()
regstoadd <- list(m1,m2, m3,m4, m5 )

MSd <- function(variable){
  x1 <- round(mean(variable, na.rm = TRUE), 2)
  x2<-  round(sd(variable, na.rm = TRUE), 2)
  return(c(x1,x2))
}

Stats <- rbind(MSd(Re[,yvars[1]]),
  MSd(Re[,yvars[1]]) ,
  MSd(Re[,yvars[1]]) ,
  MSd(Re[Re$year %in% c(1912, 1914),yvars[1]]),
  # MSd(Re[Re$year %in% c(1911, 1912, 1914),yvars[1]]),
  MSd(Re[Re$year %in% c(1911, 1912, 1914) & Re$pop < 10000 ,yvars[1]])
)
####OUT
add.lines <- list(AddLines( 7, "County FE", rep(LMc("Yes"),5)),
                  AddLines( 7, "Incl. 1913", c(rep(LMc("Yes"),2), c(LMc("No"), LMc("Yes"),  LMc("Yes")))),
                  AddLines( 7, "Incl. 1911", c(rep(LMc("Yes"),2), c(LMc("No"), LMc("No"),  LMc("Yes")))),
                  AddLines( 7, "Controls", c(LMc("No"),  rep(LMc("Yes"),4))),
                  AddLines( 7, "Pop under 15k", c(rep(LMc("No"),4), LMc("Yes"))),
                  AddLines( 7, "Within 2~km of roads ", c(rep(LMc("No"),4), LMc("Yes"))),
                  AddLines( 7, "Mean dep. var." , Stats[,1] ),
                  AddLines( 7, "Sd dep. var." , Stats[,2] )
                 )

fileConn<-file(paste0(tab.path,tab.name))
print(fileConn)
writeLines(stargazer(regstoadd,
                     float = FALSE ,
                     keep= outvars,
                     order = outvars ,
                     covariate.labels= labvars ,
                     star.cutoffs = c(0.109999, 0.059999, 0.019999) ,
                     digits.extra = 0,
                     multicolumn=F,#
                     #column.sep.width="10pt",
                     dep.var.caption = paste("Share of Local Electors" ),
                     dep.var.labels.include = F,
                     #column.labels = c("All", "In Biblio"),
                     #column.separate = c(4,1),
                     font.size = "footnotesize",
                     omit.table.layout = "n",
                     align =T,
                     add.lines = add.lines,
                     digits = 3,
                     intercept.top = T,
                     intercept.bottom = F,
                     keep.stat = c("rsq" , "n") ,
                     omit.stat = c("res.dev","ser") ),
           fileConn)
close(fileConn)
rm(list=
    setdiff(ls()[sapply(ls(), function(x) any(class(get(x)) == 'data.frame'))],
    c("Re","Ind")))
